In order to provide increased network reliability, redundant switches and links are often included in a network. If a switch or link fails, a redundant switch or link, already in place within the network, can quickly be enabled to replace the failed switch or link. Since the redundant switch or link can typically be enabled as a replacement more quickly than the failed component can be replaced or repaired, having redundant links and/or switching can provide a more reliable network.
When redundant components are included within a network, it is often desirable to be able to use the redundant components during normal network operation, before the failure of corresponding components. For example, if two links are implemented between an access-layer switch in a wiring closet (referred to herein as a satellite switch) and a group of distribution-layer switches, it is desirable to use both links (as opposed to leaving one link idle) to provide increased bandwidth. However, the use of both links can lead to undesirable bridging loops.
Bridging loops arise when there are multiple paths between two LANs (Local Area Networks) and those paths are each used to send a copy of the same packet. This can result in the device to which the packet is being sent receiving multiple copies of the packet. If the packet is being broadcast, the use of multiple paths can lead to situations in which the packet is forwarded endlessly, consuming a significant portion of the available network bandwidth and blocking the transmission of other packets. Bridging loops can also lead to network problems by interfering with the ability of network devices to correctly learn the network configuration. Typically, network devices operate by “learning” which LAN includes a particular client device by tracking which of the network device's ports receives packets sent by that client device. For example, if a copy of the same packet is transmitted via multiple paths to multiple different network devices, one of those network devices may in turn forward its copy back to another one of the network devices that has already received a copy of the packet directly from the client device. As a result, the other network device receives two copies of the packet and incorrectly updates its forwarding information to indicate that the network device should communicate with the client device via the port that received the second copy of the packet. However, the network device's forwarding information should instead indicate that the network device should communicate with the client device via the port that received the first copy of the packet directly from the client device. The incorrect forwarding information causes the network device to use the wrong port when subsequently attempting to communicate with the client device, which can lead to inefficiencies or even failures in communication.
In order to avoid bridging loops that result from using redundant links, a STP (Spanning Tree Protocol) may be used. Typically, a STP identifies multiple paths between a given pair of network nodes and blocks all but one of those paths. Thus, while STP prevents bridging loops, it may also prevent utilization of redundant links between network nodes. A more recent version of STP, which operates on a per-VLAN (Virtual Local Area Network) basis, provides a better solution (VLANs logically separate a single physical LAN into multiple logical LANs). With per-VLAN STP, one redundant link can be blocked for one set of one or more VLANs while the other redundant link is blocked for another set of VLANs. Thus, if there are multiple VLANs implemented, both of the redundant links can be used and bridging loops for each VLAN can be avoided. However, this solution is only available when there are multiple VLANs. If multiple VLANs are not implemented, effective utilization of both redundant links that avoids bridging loops may be difficult. Additionally, the granularity of the load balancing provided by per-VLAN STP is limited to the number of VLANs. The loadsharing provided by per-VLAN STP may also be heavily lopsided if one VLAN carries significantly more traffic than the other VLANs. As the above description shows, existing technologies may not provide desired usage of redundant resources in certain situations.